Distribution of software products is a time consuming activity, particularly in a system including a great number of target computers (or endpoints) on which the software products must be installed. A typical example is that of a large network with hundreds of workstations, wherein software products are periodically upgraded in order to be abreast of the information technology development.
Software distribution applications have been proposed in the last years to assist a system administrator in efficiently managing deployment of software products from a central site of the system. An example of software distribution application is the “Tivoli Configuration Manager” by IBM Corporation. Typically, a software distribution application controls the building of software packages including instructions specifying the actions to be carried out on the endpoints for installing or removing corresponding software products; each software package can further embed an image of the software products to be installed on the endpoints. The software package is transmitted to each endpoint, and it is then applied by executing the corresponding instructions.
Some software distribution applications also allow verifying whether each software package can actually be applied on the endpoints (before its distribution). For this purpose, the software package specifies one or more conditions that must be satisfied by the endpoints; for example, the installation of the corresponding software product requires a specific hardware configuration, the availability of other software products (prerequisites), or the absence of incompatible software products (ex-requisites). The verification is performed by exploiting a central database, which stores the (alleged) configuration of the endpoints resulting from the application of the software packages previously deployed.
In this case, an exception is raised whenever some conditions are not satisfied on one or more endpoints. As a consequence, the distribution of the software package on those endpoints is skipped and the administrator is notified accordingly.
Particularly, if prerequisite products are not available on the endpoints the administrator is required to install such products manually (before trying to distribute the skipped software package again).
However, this operation is very time-consuming; moreover, it must be repeated individually on each endpoint wherein the prerequisite products are not available.
The manual installation of the prerequisite products is also prone to errors (due to the fact that different prerequisite products must generally be installed on each endpoint).
In addition, it is not possible to exclude that the configurations of the endpoints have changed out of the control of the distribution application (so that the information stored in the central database is not up-to-date). In this case, errors can still arise during the actual application of the software package on the endpoints (for example, because some prerequisite products have been removed manually).
The above-mentioned drawbacks are particular acute in large systems, wherein the prerequisite products can be non-available on a high number of endpoints.